package chapter09

/**
  * @Copyright: Shanghai Definesys Company.All rights reserved.
  * @Description:
  * @author: chuhaitao
  * @since: 2019/1/10 22:36
  * @history:
  *          1.2019/1/10 created by chuhaitao
  */
object MinxinDemo2 {

  def main(args: Array[String]): Unit = {
    //我们创建对象的时候，顺序
    var mysql = new mysql with OracleDB with MysqlDB
    //执行的顺序，反过来了
    //当执行supper是 指定的是左边的特质
    //如果左边没有特质了，则supper就是父特质
    mysql.insert(1)
  }


}

trait Operation {
  println("Operation--")

  def insert(id: Int)
}

trait DBConn extends Operation {
  println("DBConn--")

  //实现了demo4的方法
  def insert(id: Int): Unit = {
    println("DBConn insert ")
  }


}

trait OracleDB extends DBConn {
  println("OracleDB--")

  //重写了demo4的方法
  override def insert(id: Int): Unit = {
    println("OracleDB insert-- ")
    super.insert(2);
  }
}

trait MysqlDB extends DBConn {
  println("MysqlDB--")

  //重写了demo4的方法
  override def insert(id: Int): Unit = {
    println("MysqlDB insert ")
    //这里的supper动态混入时不一定是父类
    super.insert(id);
  }
}


class mysql {


}